package com.ym.medical.service;

import com.ym.core.utils.tkmybatis.IBaseSV;
import com.ym.medical.domain.entity.SysConfigEntity;
import com.ym.medical.domain.param.SysConfigQueryParam;
import com.ym.medical.domain.param.SysConfigUpdateParam;
import com.ym.medical.domain.vo.SysConfigListPcVO;

import java.util.List;
import java.util.function.Function;

/**
 * 系统参数配置Service接口
 *
 * @author ym
 * @date 2020-08-18
 */
public interface ISysConfigSV extends IBaseSV<SysConfigEntity> {

	/**
	 * 查询系统参数配置列表
	 *
	 * @param queryParam 系统参数配置 查询对象
	 * @return 系统参数配置集合
	 */
	List<SysConfigListPcVO> selectListPC(SysConfigQueryParam queryParam);


	/**
	 * 新增系统参数配置
	 *
	 * @param updateParam 系统参数配置 新增对象
	 * @return 结果
	 */
	Long insertPC(SysConfigUpdateParam updateParam);

	/**
	 * 修改系统参数配置
	 *
	 * @param updateParam 系统参数配置 修改参数
	 * @return 结果
	 */
	int updateByIdPC(SysConfigUpdateParam updateParam);

	/**
	 * 根据key查询value
	 *
	 * @param theKey
	 * @return
	 */
	String getValueByKey(String theKey);

	/**
	 * 根据key查询value,并转换为指定的value
	 *
	 * @param theKey
	 * @param handle 转换类型
	 * @return
	 */
	<R> R getValueByKey(String theKey, Function<String, R> handle);
}
